package disenioPantallas.ActividadesCampo;

import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.AbstractAction;
import javax.swing.Box;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.BoxLayout;
import javax.swing.SwingConstants;

import disenioPantallas.elementos.EButton;
import disenioPantallas.elementos.EComboBox;
import disenioPantallas.elementos.ELabel;
import disenioPantallas.elementos.EPanel;
import disenioPantallas.elementos.dialogGeneral;
import entidades.Campo;
import gestores.GestorCampo;
import gestores.GestorErrores;
import gestores.GestorSistema;



public class DSeleccionarCampo extends dialogGeneral {

	private static final long serialVersionUID = 1L;
	private Campo campo;
	private Vector<Campo> campos;
	private Vector<String> nombreCampos;
	private EComboBox cbCampos;
	private GestorCampo gCampo=GestorCampo.getGestorCampo();

	
	public DSeleccionarCampo() {
		setTitle("Seleccionar Campo");
		setMinimumSize(new Dimension(400, 150));
		getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
		
		Component verticalStrut = Box.createVerticalStrut(8);
		getContentPane().add(verticalStrut);
		
		JPanel panelPesaje = new EPanel();
		getContentPane().add(panelPesaje);
		panelPesaje.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
		
		JLabel lbCaravana = new ELabel("Campos:");
		lbCaravana.setHorizontalAlignment(SwingConstants.CENTER);
		panelPesaje.add(lbCaravana);
		
		Component horizontalStrut = Box.createHorizontalStrut(20);
		panelPesaje.add(horizontalStrut);
		
		cbCampos = new EComboBox();
		panelPesaje.add(cbCampos);
		
		JPanel panelCancelar = new EPanel();
		getContentPane().add(panelCancelar);
		
		JButton btnAceptar = new EButton("Aceptar");
		panelCancelar.add(btnAceptar);
		btnAceptar.addActionListener(new aceptarAction());
		
		JButton btnCancelar = new EButton("Cancelar");
		panelCancelar.add(btnCancelar);
		btnCancelar.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				cerrarDialog();
			}
		});
		nombreCampos=new Vector<String>();
		try {
			campos=gCampo.getCamposEncontrados();
			for(int i=0;i<campos.size();i++){
				nombreCampos.add(campos.get(i).getNombreCampo());
			}
		} catch (Throwable e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			GestorErrores.getGestorErrores().mostrarCartelError(e.getMessage());
		}
		
		cbCampos.setModel(new DefaultComboBoxModel<>(nombreCampos));

	}

	
	private class aceptarAction extends AbstractAction{


		private static final long serialVersionUID = 1L;

		public void actionPerformed(ActionEvent e) {
			for(int i=0;i<campos.size();i++){
				if(cbCampos.getSelectedItem().equals(campos.get(i).getNombreCampo()))
					campo=campos.get(i);
			}
			
			try {
				
				gCampo.setCampoActual(gCampo.getCampoCompleto(campo));
				cerrarDialog();
				

			} catch (Throwable e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
				GestorErrores.getGestorErrores().mostrarCartelError(e1.getMessage());
			}
		}
		
	}
}